﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados.Interfaces;
using Dados.ValueObjects;
using Dados.INFTURDataSetTableAdapters;

namespace Dados.Classes_SQLServer
{
    public class VendaPacoteSQLServer : IVendaPacote
    {
        T_VENDAPACOTETableAdapter vpacoteTA = new T_VENDAPACOTETableAdapter();

        #region IVendaPacote Members

        public int Insere(VendaPacoteVO vpVO)
        {

            try
            {
                return vpacoteTA.Insert(vpVO.Pacote, vpVO.Cliente,
                    vpVO.Data, vpVO.Pagamento, vpVO.Usuario);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            

        }

        public int Atualiza(VendaPacoteVO vpVO)
        {
            try
            {
                
                return vpacoteTA.Update(vpVO.Pacote, vpVO.Cliente,
                    vpVO.Data, vpVO.Pagamento, vpVO.Usuario,vpVO.Id);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }



        }

        public int Remove(int ID)
        {
            try
            {
              return  vpacoteTA.Delete(ID);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }

           
        }

        public VendaPacoteVO Consulta(int ID)
        {
            try{
                VendaPacoteVO vpVO = null;
                INFTURDataSet.T_VENDAPACOTEDataTable dtPacote = vpacoteTA
                    .GetVendaPacotePorId(ID);
                    
                if (dtPacote.Count > 0)
                {
                    vpVO = new VendaPacoteVO();
                    vpVO.Id = dtPacote[0].nr_id;
                    vpVO.Pacote = dtPacote[0].nr_pacote;
                    vpVO.Pagamento = dtPacote[0].tx_formadepagamento;
                    vpVO.Usuario = dtPacote[0].tx_usuario;
                    vpVO.Cliente = dtPacote[0].tx_cliente;
                    vpVO.Data = dtPacote[0].dt_data;

                    
                }
                return vpVO;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }


        }

        public List<VendaPacoteVO> ConsultaTodos()
        {
            try 
            {
                List<VendaPacoteVO> lvpVO = new List<VendaPacoteVO>();
                INFTURDataSet.T_VENDAPACOTEDataTable dt = vpacoteTA.GetData();

                foreach (INFTURDataSet.T_VENDAPACOTERow pRow in dt)
                {
                    VendaPacoteVO vpVO = new VendaPacoteVO();
                    vpVO.Id = pRow.nr_id;
                    vpVO.Pacote = pRow.nr_pacote;
                    vpVO.Pagamento = pRow.tx_formadepagamento;
                    vpVO.Usuario = pRow.tx_usuario;
                    vpVO.Cliente = pRow.tx_cliente;
                    vpVO.Data = pRow.dt_data;

                    lvpVO.Add(vpVO);

                }
                return lvpVO;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }

        #endregion
    }
}
